home *** CD-ROM | disk | FTP | other *** search
/ Amiga Collections: Franz PD / Franz PD Disk #142 (1991-10)(Rhein-Sieg-Soft).zip / Franz PD Disk #142 (1991-10)(Rhein-Sieg-Soft).adf / LinienP / LiesMich < prev    next >
Text File  |  1991-09-30  |  9KB  |  164 lines

  1. ***************************************************************************
  2. *                               Linien V1.0                               *
  3. *                                                                         *
  4. *               Geschrieben im Jahre 1991 von Norbert Tausch              *
  5. *                                                                         *
  6. *            Dieses Programm ist Public Domain (FD) ; Nobi-Soft           *
  7. *                                                                         *
  8. ***************************************************************************
  9.  
  10.                 Vorwort .......................... Zeile  15
  11.                 Beschreibung des Programmaufbaus . Zeile  34
  12.                 Benutzungsbedingungen ............ Zeile 121
  13.                 Adresse des Autors ............... Zeile 135
  14.                 Nachwort ......................... Zeile 152
  15.  
  16. ***************************************************************************
  17.  
  18.                                   Vorwort
  19.  
  20. Dieses Programm ist eine Art Demoprogramm das aufzeigen soll wie man ein
  21. Assemblerprogramm schreibt das sowohl vom CLI als auch von der Workbench
  22. aus gestartet werden kann. Dies ist besonders für Einsteiger interesant
  23. die ihr Programm multitaskingfähig schreiben wollen. Neben dem Programm
  24. ist eine Erklärung abgegeben wie dies bewerkstelligt werden kann. Inklusive
  25. Sourcecode in Assembler (Devpac V2.14D u. A68k V2.6).
  26.  
  27. Bevor ich jetzt zur Programmbeschreibung komme möchte ich darauf hinweisen
  28. das der Sourcecode etwas "verschnörkelt" aussieht da ich das Programm mit
  29. dem Devpac-Assembler erstellt habe und dieser den Sourcecode nicht in ASCII
  30. speichert. Dadurch kommt es zustande das der Source im ASCII etwas ver-
  31. schoben aussieht. Ich habe keine Schuld! Soweit es erträglich für mich war
  32. habe ich den Sourcecode mit einem Text-Editor nochmals nachbearbeitet! Ich
  33. bitte um Ihr Verständnis. (Wie schreibt man das den überhaupt?)
  34.  
  35. ***************************************************************************
  36.  
  37.                       Beschreibung des Programmaufbaus
  38.  
  39. Da dieser Computer, den Namen habe ich vergessen, ein Multitaskingfähiger
  40. Computer ist, können mehrere Programme gleichzeitig "nebeneinander" laufen.
  41. (Ist ja logisch!) Das mag zwar für den Anwender ganz nützlich und bequem
  42. sein, aber für den Programmierer selbst wirft das ein paar zusätzlich
  43. Programmierschritte auf. Wenn ein Programm vom CLI aus gestartet wird, so
  44. hat es das Exclusivrecht als alleiniges Programm zu laufen. D.h. es muß
  45. nicht Angst haben das ein anderes Programm versucht ihm den Speicher wegzu-
  46. nehmen! Dies kann man aber dadurch umgehen indem man den Befehl RUN ver-
  47. wendet. Das bringt aber für den Programmierer keine Nachteile da in diesem
  48. Falle der Befehl RUN das restliche regelt.
  49.  
  50. Wenn ein Programm aber von der Workbench aus laufen soll so ist das nicht
  51. mehr möglich. Sie können ihr Programm ruhig wie ein Programm schreiben
  52. das vom CLI aus laufen soll und dieses einmal von der Workbench aus
  53. starten. Bald werden Sie merken das der Computer immer abstürzt. Nun dies
  54. kommt daher weil Ihr Programm keine Aufenthaltsgenehmigung auf der Work-
  55. bench hatte. Diese muß natürlich erst einmal eingeholt werden. Und wie dies
  56. funktioniert wird nun erklärt.
  57.  
  58. Sehen wir uns dazu das Programm Linien einmal an. In den ersten Zeilen
  59. finden die ganzen Deklarationen der Konstanten statt. In den ersten
  60. Programmzeilen wird nun erst einmal getestet ob wir vom CLI aus gestartet
  61. wurden. Wir gehen hierzu wiefolgt vor: Wir bewegen die ExecBase dazu sich
  62. gefälligst nach a6 zu begeben. Danch holen wir den Zeiger auf unseren
  63. eigenen Task nach a0. Was heißt eigentlich Task. Es ist eher unsere Task-
  64. struktur. Und ab dem Offset 172(=$ac) steht ein Wert der anzeigt ob es ein
  65. CLI- oder ein Workbenchtask ist. Falls es nun ein Workbenchtask ist, so
  66. müsssen wir verzweigen und zwei Möglichkeiten beschreiben - die eine ist
  67. die Möglichkeit das vom CLI aus gestartet wurde und die andere ist die, das
  68. von der Workbench gestartet wurde. Beide Möglichkeiten müssen von uns nun
  69. in betracht gezogen werden.
  70.  
  71. Falls vom CLI aus gestartet wurde, so müssen wir das Programm so schreiben
  72. wie wir es vom CLI aus halt gewohnt sind (Im Beispielprogramm Linien gibt
  73. es zwischen beiden keinen Unterschied, da wir keine Parameter und anderes
  74. einlesen). Wenn aber von der Workbench gestartet wurde, so ist zuerst diese
  75. Aufenthaltsgenehmigung einzuholen bevor das Programm loslegen darf! Ja, und
  76. so wird es gemacht:
  77.  
  78. In unserer Taskstruktur steht ab dem Offset 92(=$5c) ein Zeiger auf unseren
  79. MsgPort(MessagePort). Dies ist so eine Art direkter Draht (Telefonleitung)
  80. zu unserer Workbench. Wir müssen also darauf warten bis wir von der Work-
  81. bench angerufen werden. Dies erledigt die Funktion WaitPort. Sie wartet
  82. solange bis an unserem Messageport eine Nachricht vorliegt. Wenn dies
  83. der Fall ist, so müssen wir diese Nachricht natürlich aufzeichnen. (Dies
  84. regelt die Funktion GetMsg. Als Ergebnis erhalten wir in d0 die Nachricht)
  85. Wir müssen also die Nachricht irgendwo sichern weil wir diese noch
  86. benötigen. (Die Workbench versteht unsere Sprache nicht genau und akzeptiert
  87. es dann auch später das wir uns mit ihrer Meldung wieder abmelden; dazu
  88. später mehr!)
  89.  
  90. So und nun dürfen wir loslegen. Ab hier erfolgt der normale Programmablauf.
  91. Jedoch nur solange bis das Programm wieder aufhören soll zu existieren
  92. (im Speicher). Denn dann müssen wir uns wieder von der Workbench abmelden.
  93. Na und Sie können sich sicherlich schon denken wie das so ungefähr
  94. funktioniert? Nein? Na gut ich erkläre es.
  95.  
  96. Wir müssen hier jetzt nun wieder zwei wege gehen. Der eine falls vom CLI
  97. aus gestartet wurde und den anderen eben. Und diesen anderen gehen wir nun.
  98. Das einzige was zu tun ist, beschränkt sich auf das Antworten. Die
  99. Workbench nimmt diese Antwort auf und Schluckt sie zufrieden und
  100. verabschiedet sich höfflich (vielleich mit einem Guru?; Na keine Angst!).
  101. Dies wird durch die Funktion ReplyMsg durchgeführt. Aber weil es eben ein
  102. Multitaskingfähiger Computer ist, so kann ja eben jedes Programm mit der
  103. Workbench "funken". Dies kann sogar soweit gehen das unser direkter Draht
  104. zur Workbench gestört (oder sollte ich vielleicht zerstört sagen?) werden
  105. kann. Hier bietet sich uns doch direkt einmal die Möglichkeit und für sehr
  106. kurze Zeit zum Kaiser von und zu Workbench zu erklären. (Aber bitte nur
  107. für sehr kurze Zeit, da sonst das Gesetz vom Multitasking gestört wird)
  108. Wir schalten halt eben das Multitasking (für kurze [sehr kurze] Zeit ab !!)
  109. einfach ab. Dadurch kann uns keiner mehr dazwischenfunken und unser
  110. Nachricht kommt gut an. Danach sind wir eben wieder einmal so gnädig und
  111. shclaten das Multitasking wieder ein (Aber sofort!). Na und jetzt beendet
  112. man das Programm halt mit einem wunderbaren "rts".
  113.  
  114. Wenn Sie nun hier überhaupt nicht durchgeblickt haben sollten (kann ja mal
  115. vorkommen) so gebe ich Ihnen den Rat sich einfach einmal das Programm
  116. Linien anzuschauen. Hier können sie alles nocheinmal nachvollziehen. Falls
  117. es dann immer noch fragen geben sollte, so haben Sie die Möglichkeit mir
  118. einen wunderschönen Brief zu schreiben indem Sie ihr Anliegen vorbringen.
  119. Näheres dazu aber unter "Adresse des Autors".
  120.  
  121. ***************************************************************************
  122.  
  123.                            Benutzungsbediengungen
  124.  
  125. Dieses Programm ist Public Domain, oder man kann es auch als FD bezeichnen
  126. (Habe ich auf der Amiga-Juice 24 gelesen!). Dieses Programm darf also frei
  127. kopiert werden. Wenn Sie dieses Programm in Ihre eigenen PD-Serie aufnehmen
  128. wollen, so bitte ich Die trotzdem mir einen kleinen Brief zukommen
  129. zu lassen. Ich bin nämlich dann in der Lage Ihnen für die PD-Serie die
  130. neueste Version (Falls es doch einmal eine gibt!) anbieten zu können (für
  131. die Serie!). Ansonsten gibt es eigentlich nichts weiter zu beachten.
  132. Präsentiert wurde Ihnen das Programm von Nobi-Soft! Dieses Verzeichnis
  133. wurde speziell für die Franz_PD-Serie hergestellt!
  134.  
  135. ***************************************************************************
  136.  
  137.                              Adresse des Autors
  138.  
  139. Falls Sie also etwas auf dem Herzen haben, so schreiben Sie mir doch einfach
  140. einmal. Es kann doch nichts schaden. Ich freue mich über jeden Brief. Das
  141. kann ich Ihnen jetzt schon versprechen. Beachten Sie aber bitte daß
  142. gesetzt den Fall Sie eine Antwort haben wollen, ein adressierter und aus-
  143. reichen frankierter Rückumschlag beigelegt werden muß. Wenn Sie das
  144. beachten so erhalten Sie 100%ig in kürzester Zeit eine Antwort.
  145.  
  146.                                Meine Adresse:
  147.  
  148.                                Norbert Tausch
  149.                               Norikerstr. 06 I
  150.                               8500 Nürnberg 01
  151.  
  152. ***************************************************************************
  153.  
  154.                                   Nachwort
  155.  
  156. Diesesmal möchte ich mich nur bei drei Personen bedanken. Es sind Holger
  157. Franz, der die Franz_PD-Serie "großgezogen" hat und Gerald Zorn sowie
  158. Hans-Peter Lattka die die Serie nun weiterführen und dieses Programm in die
  159. Franz_PD-Serie aufgenommen haben. Dankeschön!
  160.  
  161. Nobi-Soft ; Nürnberg den 31.08.1991
  162. ***************************************************************************
  163.  
  164.